#if !defined(SM__SWAGME_H)
#define SM__SWAGME_H

#include <iostream>
#include <stdlib.h>
#include "SDL.h"
#include "SDL_image.h"

// game dimensions in pixels, must match graphics resources to make sense
// the map is where the game play happens
// multiples of 32...
#define MAP_SIZE_X (576)
#define MAP_SIZE_Y (576)
#define MAP_POS_X (12)
#define MAP_POS_Y (12)
// sprite dimensions are constant for all sprites
#define SPRITE_SIZE_X (32)
#define SPRITE_SIZE_Y (32)
// define boundaries for player movement
// jms: player movement is zero-based (you can revert this if you want)
#define PLAYER_POS_MIN_X (0)
#define PLAYER_POS_MAX_X (MAP_SIZE_X - SPRITE_SIZE_X)
#define PLAYER_POS_MIN_Y (0)
#define PLAYER_POS_MAX_Y (MAP_SIZE_Y - SPRITE_SIZE_Y)
// the status area has score & player info
#define STATUS_SIZE_X (188)
#define STATUS_SIZE_Y (576)
#define STATUS_POS_X (600)
#define STATUS_POS_Y (12)

using namespace std;

// clockwise, starting at up or north
enum sm_direction { sm_dir_none = 0, sm_dir_up = 1, sm_dir_right = 2, sm_dir_down = 3, sm_dir_left = 4};

// returns a random number in the inclusive range (min, max)
int random(int min, int max);

#endif // SM__SWAGME_H
